package com.ruoyi.find.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 家具租赁综合对象 furniture_rental
 * 
 * @author yang
 * @date 2025-10-08
 */
public class FurnitureRental extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 家具ID */
    @Excel(name = "家具ID")
    private Long furnitureId;

    /** 家具名称 */
    @Excel(name = "家具名称")
    private String name;

    /** 家具类型 */
    @Excel(name = "家具类型")
    private String typeName;

    /** 家具风格 */
    @Excel(name = "家具风格")
    private String styleName;

    /** 材质 */
    @Excel(name = "材质")
    private String material;

    /** 长度(厘米) */
    @Excel(name = "长度(厘米)")
    private BigDecimal length;

    /** 宽度(厘米) */
    @Excel(name = "宽度(厘米)")
    private BigDecimal width;

    /** 高度(厘米) */
    @Excel(name = "高度(厘米)")
    private BigDecimal height;

    /** 重量(千克) */
    @Excel(name = "重量(千克)")
    private BigDecimal weight;

    /** 颜色选项 */
    @Excel(name = "颜色选项")
    private String colorOptions;

    /** 颜色代码 */
    @Excel(name = "颜色代码")
    private String colorCodes;

    /** 详细描述 */
    @Excel(name = "详细描述")
    private String description;

    /** 租金(元/月) */
    @Excel(name = "租金(元/月)")
    private BigDecimal rentPrice;

    /** 押金(元) */
    @Excel(name = "押金(元)")
    private BigDecimal deposit;

    /** 总库存数量 */
    @Excel(name = "总库存数量")
    private Long totalStock;

    /** 可租库存数量 */
    @Excel(name = "可租库存数量")
    private Long availableStock;

    /** 图片 */
    @Excel(name = "图片")
    private String imageUrls;

    /** 图片描述 */
    @Excel(name = "图片描述")
    private String imageDescs;

    /** 是否启用 */
    @Excel(name = "是否启用")
    private Integer isActive;

    /** 最短租赁天数 */
    @Excel(name = "最短租赁天数")
    private Long minRentDays;

    /** 最长租赁天数 */
    @Excel(name = "最长租赁天数")
    private Long maxRentDays;

    /** 配送费 */
    @Excel(name = "配送费")
    private BigDecimal deliveryFee;

    /** 月维护费 */
    @Excel(name = "月维护费")
    private BigDecimal maintenanceFee;

    /** 损坏赔偿标准 */
    @Excel(name = "损坏赔偿标准")
    private BigDecimal damageFee;

    /** $column.columnComment */
    private Date createdAt;

    /** $column.columnComment */
    private Date updatedAt;

    /** 最后库存更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后库存更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastStockUpdate;

    /** 供应商ID */
    @Excel(name = "供应商ID")
    private Long supplierId;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    private String supplierName;

    /** 保修期(天) */
    @Excel(name = "保修期(天)")
    private Long warrantyPeriod;

    public void setFurnitureId(Long furnitureId) 
    {
        this.furnitureId = furnitureId;
    }

    public Long getFurnitureId() 
    {
        return furnitureId;
    }

    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }

    public void setTypeName(String typeName) 
    {
        this.typeName = typeName;
    }

    public String getTypeName() 
    {
        return typeName;
    }

    public void setStyleName(String styleName) 
    {
        this.styleName = styleName;
    }

    public String getStyleName() 
    {
        return styleName;
    }

    public void setMaterial(String material) 
    {
        this.material = material;
    }

    public String getMaterial() 
    {
        return material;
    }

    public void setLength(BigDecimal length) 
    {
        this.length = length;
    }

    public BigDecimal getLength() 
    {
        return length;
    }

    public void setWidth(BigDecimal width) 
    {
        this.width = width;
    }

    public BigDecimal getWidth() 
    {
        return width;
    }

    public void setHeight(BigDecimal height) 
    {
        this.height = height;
    }

    public BigDecimal getHeight() 
    {
        return height;
    }

    public void setWeight(BigDecimal weight) 
    {
        this.weight = weight;
    }

    public BigDecimal getWeight() 
    {
        return weight;
    }

    public void setColorOptions(String colorOptions) 
    {
        this.colorOptions = colorOptions;
    }

    public String getColorOptions() 
    {
        return colorOptions;
    }

    public void setColorCodes(String colorCodes) 
    {
        this.colorCodes = colorCodes;
    }

    public String getColorCodes() 
    {
        return colorCodes;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setRentPrice(BigDecimal rentPrice) 
    {
        this.rentPrice = rentPrice;
    }

    public BigDecimal getRentPrice() 
    {
        return rentPrice;
    }

    public void setDeposit(BigDecimal deposit) 
    {
        this.deposit = deposit;
    }

    public BigDecimal getDeposit() 
    {
        return deposit;
    }

    public void setTotalStock(Long totalStock) 
    {
        this.totalStock = totalStock;
    }

    public Long getTotalStock() 
    {
        return totalStock;
    }

    public void setAvailableStock(Long availableStock) 
    {
        this.availableStock = availableStock;
    }

    public Long getAvailableStock() 
    {
        return availableStock;
    }

    public void setImageUrls(String imageUrls) 
    {
        this.imageUrls = imageUrls;
    }

    public String getImageUrls() 
    {
        return imageUrls;
    }

    public void setImageDescs(String imageDescs) 
    {
        this.imageDescs = imageDescs;
    }

    public String getImageDescs() 
    {
        return imageDescs;
    }

    public void setIsActive(Integer isActive) 
    {
        this.isActive = isActive;
    }

    public Integer getIsActive() 
    {
        return isActive;
    }

    public void setMinRentDays(Long minRentDays) 
    {
        this.minRentDays = minRentDays;
    }

    public Long getMinRentDays() 
    {
        return minRentDays;
    }

    public void setMaxRentDays(Long maxRentDays) 
    {
        this.maxRentDays = maxRentDays;
    }

    public Long getMaxRentDays() 
    {
        return maxRentDays;
    }

    public void setDeliveryFee(BigDecimal deliveryFee) 
    {
        this.deliveryFee = deliveryFee;
    }

    public BigDecimal getDeliveryFee() 
    {
        return deliveryFee;
    }

    public void setMaintenanceFee(BigDecimal maintenanceFee) 
    {
        this.maintenanceFee = maintenanceFee;
    }

    public BigDecimal getMaintenanceFee() 
    {
        return maintenanceFee;
    }

    public void setDamageFee(BigDecimal damageFee) 
    {
        this.damageFee = damageFee;
    }

    public BigDecimal getDamageFee() 
    {
        return damageFee;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    public void setLastStockUpdate(Date lastStockUpdate) 
    {
        this.lastStockUpdate = lastStockUpdate;
    }

    public Date getLastStockUpdate() 
    {
        return lastStockUpdate;
    }

    public void setSupplierId(Long supplierId) 
    {
        this.supplierId = supplierId;
    }

    public Long getSupplierId() 
    {
        return supplierId;
    }

    public void setSupplierName(String supplierName) 
    {
        this.supplierName = supplierName;
    }

    public String getSupplierName() 
    {
        return supplierName;
    }

    public void setWarrantyPeriod(Long warrantyPeriod) 
    {
        this.warrantyPeriod = warrantyPeriod;
    }

    public Long getWarrantyPeriod() 
    {
        return warrantyPeriod;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("furnitureId", getFurnitureId())
            .append("name", getName())
            .append("typeName", getTypeName())
            .append("styleName", getStyleName())
            .append("material", getMaterial())
            .append("length", getLength())
            .append("width", getWidth())
            .append("height", getHeight())
            .append("weight", getWeight())
            .append("colorOptions", getColorOptions())
            .append("colorCodes", getColorCodes())
            .append("description", getDescription())
            .append("rentPrice", getRentPrice())
            .append("deposit", getDeposit())
            .append("totalStock", getTotalStock())
            .append("availableStock", getAvailableStock())
            .append("imageUrls", getImageUrls())
            .append("imageDescs", getImageDescs())
            .append("isActive", getIsActive())
            .append("minRentDays", getMinRentDays())
            .append("maxRentDays", getMaxRentDays())
            .append("deliveryFee", getDeliveryFee())
            .append("maintenanceFee", getMaintenanceFee())
            .append("damageFee", getDamageFee())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("lastStockUpdate", getLastStockUpdate())
            .append("supplierId", getSupplierId())
            .append("supplierName", getSupplierName())
            .append("warrantyPeriod", getWarrantyPeriod())
            .toString();
    }
}
